#include <stdbool.h>
#include <errno.h>
#include "common.h"

bool execShellCommand(const char* cmd, char* buf, int len)
{
    FILE *fpipe = (FILE*)popen(cmd, "r");

    if( NULL == fpipe )
    {
        printf("%s, popen error %d(%s) \n", __func__, errno, strerror(errno));
        bzero(buf, len);
        return false;
    }

    if( NULL == fgets(buf, len, fpipe))
    {
        if( 0 == errno )
        {
            bzero(buf, len);
            pclose(fpipe);
            return true;
        }
        printf("%s, fgets error %d(%s) \n", __func__, errno, strerror(errno));
        bzero(buf, len);
        pclose(fpipe);
        return false;
    }

    pclose(fpipe);
   
    char* nl = strchr(buf, '\n');
    if( nl )
    {
        *nl = '\0';
    }

    return true;
}

